<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <input type="text">
</body>

</html>
<script>
    // 获取到input标签
    const inp = document.querySelector('input')
    // 同一事件连续多次触发，只处理最后一次
    function trigger() {
        console.log("我是输入完成了，，我被触发了");
    }
    // 封装函数，事件防抖
    function Stabilize(der, time) {
        // 创建变量，保存定时器返回值
        let timerid = null;
        //返回一个函数
        return function () {
            //判断，如果已经有定时器了(定时器id不为null)，就销毁这个定时器
            if (timerid) {
                clearTimeout(timerid)
            }
            //如果没有就创建一个定时器，调用传入的 打印函数
            timerid = setTimeout(() => {
                der()
            }, time)
        }
    }
    //给input添加输入事件
    inp.oninput = Stabilize(trigger,1000)
</script>